home *** CD-ROM | disk | FTP | other *** search
- #--------------------------------------------------------------------
- # envinit.tcl
- #
- # Sammlung von Tcl-Prozeduren, welche die Umgebung von
- # Nomads initialisieren (Server-Objekte, Handler-Objekte,
- # Settings, Netzwerk-Initialisierung).
- #
- # 20-Mar-99 floh created
- # 01-Jul-99 Bernd
- # 13-Jul-99 Bernd
- # 14-Jul-99 floh create_handlers: new n3dnode /world/gui
- # 29-Jul-99 floh + Viewer-Setstate nach opengame
- # + tod3d/togl-Funktionen
- # 30-Jul-99 floh + ninputhandler ist tot und durch ninputserver
- # ersetzt
- # 23-Aug-99 bernd game_init in get_gamedata umbenannt
- # game_cleanup gekillt
- # 20-Sep-99 bernd Demo Anfang nicht mehr so dramatisch.
- # 26-Sep-99 bernd Demo Anfang: Andere Uhrzeit
- # 27-Sep-99 bernd Demo Anfang
- # 05-Okt-99 bernd Demo Anfang / Sammler suchen Steine
- # 21-Okt-99 bernd neue landungsfΣhige Dummystation
- # 01-Nov-99 bernd Wenn devstation - dann auch unter Win9x im Window
- # 26-Nov-99 bernd John landet jetzt direkt auf der plattform
- # hat von Anfang an Handkontrolle
- # 30-Nov-99 bernd Weiter am neuen Input Mapping
- # 05-Jan-2000 bernd Alles mal bissl auf eine Stelle
- # 2000-01-13 bernd Artefakte und Station sind jetzt Owner 0 - st÷ren nicht mehr beim Gucken
- # 2000-01-17 floh alles auf nd3d7server umgebogen
- # 2000-01-02 bernd Kosmetik
- # 15-Feb-2000 floh Platform-Identifizierung zentralisiert
- # (get_platform ist jetzt in nsh.tcl)
- # 12-Mai-2000 bernd Zeux fⁿr Wolken
- # 06-Jun-00 floh Soundsupport
- # 14-Jun-2000 bernd WolkenEditor/neue Wolken weiter eingepa▀t
- # 19-Jun-00 floh + experimentell: ncollideserver, ncollhandler2
- # 05-Jul-00 floh + Win2k: default auf OpenGL
- # 06-Jul-00 floh + maximale Sichtentfernung auf 5km
- # 13-Jul-00 floh + maximale Sichtentfernung auf 10km
- # + endgueltige Kollissions-Tabelle
- # 09-Aug-00 floh + ncollhandler raus
- # 28-Aug-00 s3 atmos als standardhimmel ueberall
- # 09-Sep-00 floh + neue Kollissions-Klasse "avoid"
- # 26-Sep-00 floh + neue Kollissions-Klasse "gun"
- # 29-Jan-01 floh + new game handler: eventqueue
- # 27-Mar-01 floh + fixed zbuffer/sbuffer resolution in windowed mode
- # windowed mode now uses 16 bit zbuffer, fullscreen
- # is generally 32 bit (32 bit color and 32 bit zbuffer)
- # + default gfx server under w2k now nd3d7server again
- # 07-Aug-01 floh + nvtuneserver
- # 26-Sep-01 floh + ndatahandler
- # 15-Oct-01 floh + nbookhandler/neventhandler
- # 10-Dec-01 floh + new viewer stuff
- # 15-Dec-01 floh + killed old book stuff
- # + killed "multiplayer_manual" proc
- # + killed "umgebung" proc
- # 09-Jan-02 floh + added ncookiehandler
- # 11-Jan-02 floh + mipmap lod configuration
- # 31-Jan-02 floh + configure custom mouse cursors
- # 11-Feb-02 floh + added nfileserver2
- # 18-Feb-02 floh + added nfreeviewer as alternative viewer
- # 21-Mar-02 floh + neuer Audio-Server
- # 23-Mar-02 floh + removed viewer.tcl
- # 03-Apr-02 floh + nfeedbackhandler added
- # 08-Apr-02 floh + nstationhandler raus
- # 16-Apr-02 floh + nanimserver neu
- #--------------------------------------------------------------------
-
- set providerset 0
-
- #--------------------------------------------------------------------
- # create_servers
- # Erzeugt die Nebula-Server-Objekte, initialisiert sie
- # aber nicht.
- # 20-Mar-99 floh created
- # 07-May-99 floh Name des Scenegraph ist jetzt
- # /sys/servers/sgraph
- # 17-May-99 floh updated
- # 05-Jun-99 floh nlxinputserver (Joystick-Support unter Linux)
- # 22-Jun-99 floh + nmathserver
- # 27-Jan-2000 bernd Erzwingen des gewⁿnschten gfxservers
- # 15-Feb-2000 floh + Support fuer Win2k
- # 16-Feb-2000 bernd + Schreibfehler bei WinNT
- # 03-Jul-01 floh + nscenegraph2 and nchannelserver
- # 05-Aug-01 floh + shadow server
- #--------------------------------------------------------------------
- proc create_servers {} {
- global force_3ddevice
-
- # replace standard file server by npk virtual file server
- delete /sys/servers/file2
- new nnpkfileserver /sys/servers/file2
- /sys/servers/file2.parsedirectory "home:"
-
- # enable 3d nodes in world
- new n3dnode /usr/scene
-
- set nomads_platform [get_platform]
-
- set network_class nsocket2
- set comm_class ncommserver
- set console_class nconserver
-
- # ---------------------------------------
- # EingabegerΣte je nach Plattform setzen
- switch $nomads_platform {
- win9x { set input_class ndi8server }
- win2k { set input_class ndi8server }
- winnt { set input_class ninputserver }
- unix { set input_class nlxinputserver }
- }
-
- # -----------------------------------------------
- # Audio-Server ist ebenfalls plattformspezifisch
- switch $nomads_platform {
- win9x { set audio_class ndsoundserver2 }
- win2k { set audio_class ndsoundserver2 }
- winnt { set audio_class naudioserver2 }
- unix { set audio_class naudioserver2 }
- }
-
- # -----------------------------------------------
- # under windows, create a vtune profile server
- switch $nomads_platform {
- win9x { set profile_class nvtuneserver }
- win2k { set profile_class nvtuneserver }
- winnt { set profile_class nvtuneserver }
- unix { set profile_class nprofileserver }
- }
-
- # ---------------------------------------------------------------
- # Wenn force_3ddevice nicht da ist, dann setzen je nach Plattform
- if [ catch { set test $force_3ddevice } err ] {
- switch $nomads_platform {
- win9x { set gfx_class nd3d8server }
- win2k { set gfx_class nd3d8server }
- winnt { set gfx_class nglserver }
- unix { set gfx_class nglserver }
- }
-
- # Wenn force_3ddevice da ist, erzwingen wir den Server
- } else {
- puts "Forcing: $force_3ddevice"
- if { $force_3ddevice=="Direct3D" } { set gfx_class nd3d8server }
- if { $force_3ddevice=="OpenGL" } { set gfx_class nglserver }
- }
-
- # new $profile_class /sys/servers/profile
- new nfileserver2 /sys/servers/file2
- new $network_class /sys/servers/network
- new $comm_class /sys/servers/comm
- new $gfx_class /sys/servers/gfx
- new $input_class /sys/servers/input
- new $console_class /sys/servers/console
- new nscenegraph2 /sys/servers/sgraph2
- new nsbufshadowserver /sys/servers/shadow
- new nchannelserver /sys/servers/channel
- new nmathserver /sys/servers/math
- new nparticleserver /sys/servers/particle
- new nspecialfxserver /sys/servers/specialfx
- new $audio_class /sys/servers/audio
- new nopcodeserver /sys/servers/collide
- new nanimserver /sys/servers/anim
- new ncharacterserver /sys/servers/character
- }
-
- #--------------------------------------------------------------------
- # togl
- # Schaltet nach OpenGL
- # 29-Jul-99 floh created
- #--------------------------------------------------------------------
- proc togl { } {
- global devstation
-
- set nomads_platform [get_platform]
- set cwd [psel]
- sel /
- delete /sys/servers/gfx
- new nglserver /sys/servers/gfx
- sel /sys/servers/gfx
- if {$devstation} {
- /sys/servers/gfx.setdisplaymode "dev(0)-type(win)-w(640)-h(480)-title( Nomads)-icon(nomads_icon)"
- } else {
- /sys/servers/gfx.setdisplaymode "dev(0)-type(full)-w(800)-h(600)-bpp(32)-title( Nomads)-icon(nomads_icon)"
- }
- /sys/servers/gfx.setviewvolume -0.1 +0.1 -0.075 +0.075 +0.1 +5000.0
- /sys/servers/gfx.opendisplay
- sel $cwd
- }
-
- #--------------------------------------------------------------------
- # tod3d
- # Schaltet nach Direct3D
- # 29-Jul-99 floh created
- #--------------------------------------------------------------------
- proc tod3d { } {
- global devstation
-
- set nomads_platform [get_platform]
- set cwd [psel]
- sel /
- delete /sys/servers/gfx
- new nd3d8server /sys/servers/gfx
- sel /sys/servers/gfx
- if {$devstation} {
- /sys/servers/gfx.setdisplaymode "dev(0)-type(win)-w(640)-h(480)-title( Nomads)-icon(nomads_icon)"
- } else {
- /sys/servers/gfx.setdisplaymode "dev(0)-type(full)-w(800)-h(600)-bpp(32)-title( Nomads)-icon(nomads_icon)"
- }
- /sys/servers/gfx.setviewvolume -0.1 +0.1 -0.075 +0.075 +0.1 +5000.0
- /sys/servers/gfx.opendisplay
- sel $cwd
- }
-
- #--------------------------------------------------------------------
- # setup_colltable
- #
- # 18-Oct-01 floh added "contact" colltype, which only
- # checks for the first contact
- # 08-Mai-01 floh mg gegen dummyisland
- #--------------------------------------------------------------------
- proc setup_colltable {multiplayer} {
-
- sel /sys/servers/collide
- .begincollclasses
- .addcollclass plane
- .addcollclass island
- .addcollclass artefact
- .addcollclass building
- .addcollclass maennel
- .addcollclass missile
- .addcollclass avoid
- .addcollclass gun
- .addcollclass generic
- .addcollclass flak
- .addcollclass proximity
- .addcollclass dummyisland
- .addcollclass bauphase
- .addcollclass debris
- .addcollclass ore
- .addcollclass odetector
- .endcollclasses
-
- .begincolltypes
-
- .addcolltype plane plane contact
- .addcolltype plane island contact
- .addcolltype plane artefact ignore
- .addcolltype plane building contact
- .addcolltype plane maennel contact
- .addcolltype plane missile quick
- .addcolltype plane avoid quick
- .addcolltype plane gun quick
- .addcolltype plane generic quick
- .addcolltype plane flak contact
- .addcolltype plane proximity quick
- .addcolltype plane dummyisland contact
- .addcolltype plane bauphase contact
- .addcolltype plane debris ignore
- .addcolltype plane ore contact
- .addcolltype plane odetector ignore
-
- .addcolltype island plane contact
- .addcolltype island island quick
- .addcolltype island artefact ignore
- .addcolltype island building ignore
- .addcolltype island maennel exact
- .addcolltype island missile exact
- .addcolltype island avoid quick
- .addcolltype island gun exact
- .addcolltype island generic ignore
- .addcolltype island flak ignore
- .addcolltype island proximity ignore
- .addcolltype island dummyisland ignore
- .addcolltype island bauphase ignore
- .addcolltype island debris exact
- .addcolltype island ore ignore
- .addcolltype island odetector exact
-
- .addcolltype artefact plane ignore
- .addcolltype artefact island ignore
- .addcolltype artefact artefact ignore
- .addcolltype artefact building ignore
- .addcolltype artefact maennel ignore
- .addcolltype artefact missile ignore
- .addcolltype artefact avoid ignore
- .addcolltype artefact gun ignore
- .addcolltype artefact generic quick
- .addcolltype artefact flak ignore
- .addcolltype artefact proximity ignore
- .addcolltype artefact dummyisland ignore
- .addcolltype artefact bauphase ignore
- .addcolltype artefact debris ignore
- .addcolltype artefact ore ignore
- .addcolltype artefact odetector ignore
-
- .addcolltype building plane contact
- .addcolltype building island ignore
- .addcolltype building artefact ignore
- .addcolltype building building ignore
- .addcolltype building maennel exact
- .addcolltype building missile exact
- .addcolltype building avoid quick
- .addcolltype building gun quick
- .addcolltype building generic quick
- .addcolltype building flak ignore
- .addcolltype building proximity ignore
- .addcolltype building dummyisland ignore
- .addcolltype building bauphase ignore
- .addcolltype building debris exact
- .addcolltype building ore ignore
- .addcolltype building odetector ignore
-
- .addcolltype maennel plane contact
- .addcolltype maennel island exact
- .addcolltype maennel artefact ignore
- .addcolltype maennel building exact
- .addcolltype maennel maennel exact
- .addcolltype maennel missile exact
- .addcolltype maennel avoid quick
- .addcolltype maennel gun quick
- .addcolltype maennel generic quick
- .addcolltype maennel flak exact
- .addcolltype maennel proximity quick
- .addcolltype maennel dummyisland exact
- .addcolltype maennel bauphase exact
- .addcolltype maennel debris exact
- .addcolltype maennel ore exact
- .addcolltype maennel odetector ignore
-
- .addcolltype missile plane quick
- .addcolltype missile island exact
- .addcolltype missile artefact ignore
- .addcolltype missile building exact
- .addcolltype missile maennel exact
- .addcolltype missile missile ignore
- .addcolltype missile avoid ignore
- .addcolltype missile gun ignore
- .addcolltype missile generic ignore
- .addcolltype missile flak exact
- .addcolltype missile proximity ignore
- .addcolltype missile dummyisland exact
- .addcolltype missile bauphase ignore
- .addcolltype missile debris quick
- .addcolltype missile ore exact
- .addcolltype missile odetector ignore
-
- .addcolltype avoid plane quick
- .addcolltype avoid island quick
- .addcolltype avoid artefact ignore
- .addcolltype avoid building quick
- .addcolltype avoid maennel quick
- .addcolltype avoid missile ignore
- .addcolltype avoid avoid ignore
- .addcolltype avoid gun ignore
- .addcolltype avoid generic ignore
- .addcolltype avoid flak ignore
- .addcolltype avoid proximity ignore
- .addcolltype avoid dummyisland quick
- .addcolltype avoid bauphase quick
- .addcolltype avoid debris ignore
- .addcolltype avoid ore quick
- .addcolltype avoid odetector ignore
-
- .addcolltype gun plane quick
- .addcolltype gun island exact
- .addcolltype gun artefact ignore
- .addcolltype gun building quick
- .addcolltype gun maennel quick
- .addcolltype gun missile ignore
- .addcolltype gun avoid ignore
- .addcolltype gun gun ignore
- .addcolltype gun generic ignore
- .addcolltype gun flak quick
- .addcolltype gun proximity ignore
- .addcolltype gun dummyisland exact
- .addcolltype gun bauphase ignore
- .addcolltype gun debris ignore
- .addcolltype gun ore quick
- .addcolltype gun odetector ignore
-
- .addcolltype generic plane quick
- .addcolltype generic island ignore
- .addcolltype generic artefact quick
- .addcolltype generic building quick
- .addcolltype generic maennel quick
- .addcolltype generic missile ignore
- .addcolltype generic avoid ignore
- .addcolltype generic gun ignore
- .addcolltype generic generic ignore
- .addcolltype generic flak quick
- .addcolltype generic proximity ignore
- .addcolltype generic dummyisland ignore
- .addcolltype generic bauphase ignore
- .addcolltype generic debris ignore
- .addcolltype generic ore quick
- .addcolltype generic odetector ignore
-
- .addcolltype flak plane contact
- .addcolltype flak island ignore
- .addcolltype flak artefact ignore
- .addcolltype flak building ignore
- .addcolltype flak maennel exact
- .addcolltype flak missile exact
- .addcolltype flak avoid ignore
- .addcolltype flak gun quick
- .addcolltype flak generic quick
- .addcolltype flak flak ignore
- .addcolltype flak proximity ignore
- .addcolltype flak dummyisland ignore
- .addcolltype flak bauphase ignore
- .addcolltype flak debris ignore
- .addcolltype flak odetector ignore
-
- .addcolltype proximity plane quick
- .addcolltype proximity island quick
- .addcolltype proximity artefact ignore
- .addcolltype proximity building ignore
- .addcolltype proximity maennel quick
- .addcolltype proximity missile ignore
- .addcolltype proximity avoid ignore
- .addcolltype proximity gun ignore
- .addcolltype proximity generic ignore
- .addcolltype proximity flak ignore
- .addcolltype proximity proximity ignore
- .addcolltype proximity dummyisland ignore
- .addcolltype proximity bauphase ignore
- .addcolltype proximity debris ignore
- .addcolltype proximity ore ignore
- .addcolltype proximity odetector ignore
-
- .addcolltype dummyisland plane contact
- .addcolltype dummyisland artefact ignore
- .addcolltype dummyisland building ignore
- .addcolltype dummyisland maennel exact
- .addcolltype dummyisland missile exact
- .addcolltype dummyisland avoid quick
- .addcolltype dummyisland gun exact
- .addcolltype dummyisland generic ignore
- .addcolltype dummyisland flak ignore
- .addcolltype dummyisland proximity ignore
- .addcolltype dummyisland dummyisland ignore
- .addcolltype dummyisland bauphase ignore
- .addcolltype dummyisland debris exact
- .addcolltype dummyisland ore ignore
- .addcolltype dummyisland island ignore
- .addcolltype dummyisland odetector exact
-
- .addcolltype bauphase plane contact
- .addcolltype bauphase island ignore
- .addcolltype bauphase artefact ignore
- .addcolltype bauphase building ignore
- .addcolltype bauphase maennel exact
- .addcolltype bauphase missile ignore
- .addcolltype bauphase avoid quick
- .addcolltype bauphase gun ignore
- .addcolltype bauphase generic ignore
- .addcolltype bauphase flak ignore
- .addcolltype bauphase proximity ignore
- .addcolltype bauphase dummyisland ignore
- .addcolltype bauphase bauphase ignore
- .addcolltype bauphase debris ignore
- .addcolltype bauphase ore ignore
- .addcolltype bauphase odetector ignore
-
- .addcolltype debris plane ignore
- .addcolltype debris island exact
- .addcolltype debris artefact ignore
- .addcolltype debris building exact
- .addcolltype debris maennel exact
- .addcolltype debris missile quick
- .addcolltype debris avoid ignore
- .addcolltype debris gun ignore
- .addcolltype debris generic ignore
- .addcolltype debris flak ignore
- .addcolltype debris proximity ignore
- .addcolltype debris dummyisland exact
- .addcolltype debris bauphase ignore
- .addcolltype debris debris ignore
- .addcolltype debris ore exact
- .addcolltype debris odetector ignore
-
- .addcolltype ore plane contact
- .addcolltype ore island ignore
- .addcolltype ore artefact ignore
- .addcolltype ore building ignore
- .addcolltype ore maennel exact
- .addcolltype ore missile exact
- .addcolltype ore avoid quick
- .addcolltype ore gun quick
- .addcolltype ore generic quick
- .addcolltype ore flak ignore
- .addcolltype ore proximity ignore
- .addcolltype ore dummyisland ignore
- .addcolltype ore bauphase ignore
- .addcolltype ore debris exact
- .addcolltype ore ore ignore
- .addcolltype ore odetector ignore
-
- .addcolltype odetector plane ignore
- .addcolltype odetector island exact
- .addcolltype odetector artefact ignore
- .addcolltype odetector building ignore
- .addcolltype odetector maennel ignore
- .addcolltype odetector missile ignore
- .addcolltype odetector avoid ignore
- .addcolltype odetector gun ignore
- .addcolltype odetector generic ignore
- .addcolltype odetector flak ignore
- .addcolltype odetector proximity ignore
- .addcolltype odetector dummyisland exact
- .addcolltype odetector bauphase ignore
- .addcolltype odetector debris ignore
- .addcolltype odetector ore ignore
- .addcolltype odetector odetector exact
-
- .endcolltypes
- }
-
- #--------------------------------------------------------------------
- # load_mouse_cursor
- #
- # Load the custom mouse cursor. Must happen when display open.
- #--------------------------------------------------------------------
- proc load_mouse_cursor {} {
- /sys/servers/gfx.begincursors 1
- /sys/servers/gfx.setcursor 0 home:scripts/cursors/arrow.tga 0 0
- /sys/servers/gfx.endcursors
- /sys/servers/gfx.setcurrentcursor 0
- /sys/servers/gfx.showcursor
- }
-
- #--------------------------------------------------------------------
- # init_servers
- # Initialisiert die Server-Objekte.
- # 20-Mar-99 floh created
- # 25-May-99 floh definiert die Namen der Standard-Channel
- # 16-Jun-99 floh macht jetzt gleich hier ein askprovider/
- # setprovider
- # 06-Jun-00 floh + Sound-Server-Initialisierung
- # 06-Jul-00 floh + Viewvolume auf 5000 begrenzt
- # 03-Okt-00 af Artefakte kollidieren nur mit generic und Insel
- # 11-Jan-01 floh + mipmap LOD init
- # 31-Jan-02 floh + custom mouse cursors
- #--------------------------------------------------------------------
- proc init_servers {} {
- global devstation
- global skyeditor
- if [catch { set dummy $skyeditor } err] { set skyeditor 0 }
-
- set nomads_platform [get_platform]
-
- # initialisiere Netzwerk-Server
- sel /sys/servers/network
- # folgende GUID identifiziert die Applikation (in diesem
- # Fall Nomads) im Netz
- .setguid 151 182 240 0 221 75 17 210 161 176 0 0 180 60 28 161
- #.askprovider
-
- # Wenn man dieses Setprovider auskommentiert, kann man das Spiel mitunter
- # unter NT GAAAANZ wesentlich beschleunigen.
-
- # debugging: Wenn unter NT der Rechner langsam wird, dann einen der
- # Threads (oder mehrere) abschalten und testen, wer der Uebeltaeter
- # ist. Netzsessions sind dann aber nicht mehr moeglich.
- # allowsend false
- # allowreceive false
- # allowalarm false
- #.setprovider 1
- sel ..
-
- # initialisiere Gfx-Server
- sel /sys/servers/gfx
- # Setze Display-Device und -Modus. Wenn das Device oder
- # der Modus nicht existiert, waehlt der GfxServer
- # etwas moeglichst aehnliches aus.
- # In einem System mit mehr als 1 3D-Karte (z.B.
- # S3-Virge/Voodoo) muss man die fuehrende 0 durch eine
- # 1 ersetzen, um an die Voodoo zu kommen. Die Liste
- # der unterstuetzten Devices und Modes findet man auch
- # unter /sys/share/display
-
- if {$devstation} {
- .setdisplaymode "dev(0)-type(win)-w(640)-h(480)-title( Nomads)-icon(nomads_icon)"
- } else {
- .setdisplaymode "dev(0)-type(full)-w(800)-h(600)-bpp(32)-title( Nomads)-icon(nomads_icon)"
- }
-
- if {$skyeditor} {
- .setdisplaymode "dev(0)-type(win)-w(934)-h(770)-bpp(16)-zbuf(16)-title( Nomads)-icon(nomads_icon)"
- }
-
- # definiere das View-Volume, u.a. wird der Aspekt auf
- # 4:3 gesetzt (wegen der Lowlevel-Viewvolume-Definition
- # ist das bissel kompliziert, der GfxServer sollte mal
- # eine Higher-Level-Methode anbieten...
- # Der waagerechte Blickwinkel bleibt auf 90 Grad,
- # der senkrechte Blickwinkel wird aber eingeschraenkt.
- # Der Near Clipping Plane wird auf 10 Zentimeter gesetzt,
- # die Far Plane auf 25 km
-
- .setviewvolume -0.1 +0.1 -0.075 +0.075 +0.1 +5000.0
- sel ..
-
- # initialisiere Channelserver
- /sys/servers/channel.setchannel1f one 1.0
- /sys/servers/channel.setchannel1f detail 1.0
-
- # initialize shadow server
- /sys/servers/shadow.setcastshadows true
-
- # initialisiere Sound-Server
- sel /sys/servers/audio
- .setmode "chn(24)"
- .openaudio
- sel ..
-
- # OVERLAY und SPECIAL FX SERVER INIT
- sel /sys/servers/specialfx
- new n3dnode root
- sel root
- new n3dnode overlay
- sel overlay
- new noverlayplane plane
- new nshadernode shader
- sel shader
- .setrenderpri 10
- .setlightenable false
- .setalphaenable true
- .setzwriteenable false
- .setfogenable false
- .setalphablend "srcalpha" "invsrcalpha"
- .setzfunc "always"
- sel ..
- sel ..
- sel ..
-
- # initialize mipmap LOD table
- # mipmap LOD table
- set cwd [psel]
- sel /sys/servers/sgraph2
- .setenablemiplod true
- .beginmiplod 12
- .setmiplod 0 50
- .setmiplod 1 100
- .setmiplod 2 250
- .setmiplod 3 450
- .setmiplod 4 900
- .setmiplod 5 1200
- .setmiplod 6 1400
- .setmiplod 7 1600
- .setmiplod 8 1800
- .setmiplod 9 2000
- .setmiplod 10 2200
- .setmiplod 11 2400
- .endmiplod
- sel $cwd
-
- #----------------------------------------------------------------
- # Initialisiere Kollissions-Tabelle, beschreibt die einzelnen
- # Kollissions-Objekt-Typen, und wie diese sich untereinander
- # testen sollen. (Note: false => Singleplayer)
- #----------------------------------------------------------------
- setup_colltable false
- }
-
- #--------------------------------------------------------------------
- # kill_servers
- # Killt die von create_servers erzeugten Server-Objekte
- # 20-Mar-99 floh created
- # 07-May-99 floh Name des Scenegraph ist jetzt /sys/servers/sgraph
- # 03-Jul-01 floh nscenegraph2 and nchannelserver
- #--------------------------------------------------------------------
- proc kill_servers {} {
- /sys/servers/gfx.closedisplay
-
- sel /
- delete /sys/servers/math
- delete /sys/servers/shadow
- delete /sys/servers/sgraph2
- delete /sys/servers/channel
- delete /sys/servers/console
- delete /sys/servers/input
- delete /sys/servers/gfx
- delete /sys/servers/comm
- delete /sys/servers/network
- delete /sys/servers/particle
- delete /sys/servers/anim
- # delete /sys/servers/profile
- }
-
- #--------------------------------------------------------------------
- # create_handlers
- # Erzeugt die GameHandler-Objekte sowie ein paar Standard-Objekte,
- # die das nrealworld Objekt erwartet.
- # 20-Mar-99 floh created
- # 11-May-99 floh laedt zuerst das Nomads-Klassen-Package
- # 03-Jun-99 floh + erzeugt Octree-Handler
- # 14-Jul-99 floh + /world/gui
- # - /usr/scene
- # 14-Oct-99 floh + nstationhandler
- # 18-May-00 jeremy + ncloudshandler
- # 29-May-00 jeremy + nweatherhandler
- # 09-Aug-00 floh + ncollhandler raus
- # 29-Jan-01 floh + new: neventqueue
- # 15-Dec-01 floh + killed nstoryhandler, neventqueue
- # 09-Jan-02 floh + ncookiehandler
- #--------------------------------------------------------------------
- proc create_handlers {} {
- new nphysicshandler /game/handler/physics
- new noctree /game/handler/octree
-
- new nweatherhandler /game/handler/weather
-
- # aaargh, menu handler is at non-standard location !!!
- new nguimenuhandler /sys/servers/menuhandler
-
- new ncollhandler2 /game/handler/coll2
- new ndatahandler /game/handler/data
- new neventhandler /game/handler/event
- new nbookhandler /game/handler/book
- new nsearchhandler /game/handler/search
- new ncookiehandler /game/handler/cookie
- new nfeedbackhandler /game/handler/feedback
-
- new nrealworld /world
- new nroot /world/clans
- new n3dnode /world/gui
- }
-
- #--------------------------------------------------------------------
- # create_viewer
- # 07-Jul-00 floh extracted from create_handlers
- # 05-Dec-01 floh + create alternative new style viewers
- #--------------------------------------------------------------------
- proc create_viewer {} {
- global nomads_home
-
- # new style viewer
- new nviewer2 /world/viewers/identityviewer
- new nchaseviewer /world/viewers/chaseviewer
- new nfreeviewer /world/viewers/freeviewer
- /world.setviewer2 /world/viewers/chaseviewer
- }
-
- #--------------------------------------------------------------------
- # init_handlers
- #
- # 20-Mar-99 floh created
- # 25-Nov-99 bernd Input Mapping rausgenommen, mu▀ jetzt extra aufgrufen werden
- # per: source $nomads_home/scripts/input.tcl
- # 18-May-00 jeremy + ncloudshandler
- # 31-May-00 jeremy + nweatherhandler
- # 20-Oct-2000 bernd ganzen alten schei▀ zu den wolken raus
- #--------------------------------------------------------------------
- proc init_handlers {} {
-
- global nomads_home
-
- set nomads_platform [get_platform]
-
- # Wasseroberflaeche. Voererst, um "Kompatibilitaet" zum bisherigen
- # zu erreichen, eine grosse Scheibe an Position 0
- /game/handler/physics.addblayer 0 0 0 1 10000 10000 12 0 0 0 0.0 0.0
-
- # initialize the event handler
- /game/handler/event.setlogging true
-
- # initialize data handler
- /game/handler/data.setdatapaths "home:data.n" "/data"
-
- # suchbereich
- # /game/handler/search.setmaxwatchdistance 150
- /game/handler/search.setmaxwatchdistance 500
- /game/handler/search.setmaxwatchangle 15
- /game/handler/search.setcursor /data/watchcursor01/crosshair01
- /game/handler/search.sethaircross /data/crosshair01/crosshair01
- }
-
- #--------------------------------------------------------------------
- # kill_handlers
- # Raeumt die von create_handlers erzeugten Objekte weg.
- # 20-Mar-99 floh created
- #--------------------------------------------------------------------
- proc kill_handlers {} {
- sel /
- delete /world/gui
- delete /world/clans
- delete /game
- }
-
- #--------------------------------------------------------------------
- #
- # Datenbibliothek laden und in definierte Reihenfolge bringen
- #
- # 16-Jun-99 floh Handler-Initialisierung muss hier
- # raus, weil die Multiplayer-Init jetzt
- # ueber das Welt-Objekt passiert
- # 23-Aug-99 bernd game_init umbenannt in get_gamedata
- # Die Routine macht ja nur noch das - damit wird demo.tcl lesbarer
- # 26-Sep-01 floh laedt jetzt nur noch was wirklich fuers Menue
- # notwendig ist (Ausnahme: BACKPACK!)
- #--------------------------------------------------------------------
- proc get_data {} {
- global demoFlag
-
- set cwd [psel]
-
- # load the minimal data required for operating the menu
- sel /game/handler/data
- .loadpermanent shaders
- .loadpermanent if_menu
- .loadpermanent if_ebar
- .loadpermanent if_emptyslot
- .loadpermanent if_hilfe
- .loadpermanent if_marker
- .loadpermanent if_possesicons
- .loadpermanent backpack
- .loadpermanent libobjects
- .loadpermanent crosshair01
- .loadpermanent watchcursor01
- .loadpermanent sky
-
- if {!$demoFlag} {
- .loadpermanent backpack_g
- .loadpermanent backpack_s
- }
-
- sel $cwd
- }
-
- #--------------------------------------------------------------------
- # EOF
- #-------------------------------------------------------------------
-